package com.selebash;

import com.selebash.config.Config;
import java.util.HashMap;
import java.util.Map;

/**
 * @author sad
 */
public class Localization {
    public static final String MODULE = "module";
    public static final String SCRIPTNAME = "scriptname";
    public static final String DESCRIPTION = "description";
    public static final String TEMPLATE = "template";
    public static final String STEPS = "steps";
    public static final String DATA = "data";
    public static final String CHECKING = "cheking";
    public static final String AND = "and";
    public static final String OR = "or";
    public static final String IF = "if";
    public static final String CALL = "call";
    public static final String ELSE = "else";
    public static final String DATA_WALK = "data_walk";
    public static final String MODULE_AT_FIRST_LEVEL = "modulefirstlevel";
    public static final String MODULE_EXPECTED = "moduleexpected";
    public static final String TEST_EXPECTED = "testexpected";
    public static final String EXPECTED_COLON = "colonexp";
    public static final String STRING_SHOULD_END_WITH_QUOTE = "ssewq";
    public static final String UNRECOGNIZED_ESCAPE_SECUENCE = "unrecognized_escape_sequence";
    public static final String JSON_IS_NOT_CLOSED = "jsonisnotclosed";
    public static final String JSON_IS_NOT_PARSEABLE = "jsonnotparseable";
    public static final String RULE_CANNOT_HAVE_NESTED_ITEMS = "rulecannothavenested";
    public static final String CANNOT_MATCH_RULE = "cannotmatchrule";
    public static final String CANNOT_MATCH_RULE_BEST_MATCH = "cannotmatchrulebestmnatch";
    public static final String TEST_CASE_SHOULD_CONTAIN_STEPS_RULE = "TEST_CASE_SHOULD_CONTAIN_STEPS_RULE";
    public static final String SHOULD_BE_ONLY_ONE_DEFAULT_STEPS = "SHOULD_BE_ONLY_ONE_DEFAULT_STEPS";
    public static final String CHARACTER_IS_NOT_A_FALID_CHAR_FOR_STEP_NAME = "CHARACTER_IS_NOT_A_FALID_CHAR_FOR_STEP_NAME";
    public static final String DATA_SHOULD_HAVE_NAME = "DATA_SHOULD_HAVE_NAME";
    public static final String DATA_SHOULD_START_WITH = "DATA_SHOULD_STARTWITH";

    private final Map<String, String> localization = new HashMap<String, String>();

    public String getString(String key) {
        return localization.get(key);
    }

    public Localization() {
        localization.put(MODULE, "модуль");
        localization.put(TEMPLATE, "шаблон");
        localization.put(SCRIPTNAME, "тест");
        localization.put(DESCRIPTION, "описание");
        localization.put(STEPS, "шаги");
        localization.put(CHECKING, "проверка");
        localization.put(AND, "и");
        localization.put(OR, "или");
        localization.put(IF, "если");
        localization.put(ELSE, "иначе");
        localization.put(CALL, "запустить");
        localization.put(DATA_WALK, "таблица");
        localization.put(MODULE_AT_FIRST_LEVEL, "Модуль должен быть на нулевом уровне табуляции");
        localization.put(MODULE_EXPECTED, "Вы забыли написать тег модуля \"модуль\"");
        localization.put(TEST_EXPECTED, "Вы забыли написать тег имени теста \"тест\"");
        localization.put(EXPECTED_COLON, "Ожидается ':'");
        localization.put(STRING_SHOULD_END_WITH_QUOTE, "Строка должна заканчиваться символом '\"'");
        localization.put(UNRECOGNIZED_ESCAPE_SECUENCE, "Не известная escape последовательность '%c'");
        localization.put(JSON_IS_NOT_CLOSED, "Json с данными не закрыт. Пропущен символ '%c'");
        localization.put(JSON_IS_NOT_PARSEABLE, "Невозможно распарсить json документ '%s'");
        localization.put(RULE_CANNOT_HAVE_NESTED_ITEMS, "конструкция не может иметь вложенных элементов");
        localization.put(CANNOT_MATCH_RULE, "Не найдено правило");
        localization.put(CANNOT_MATCH_RULE_BEST_MATCH, "Не найдено правило. Возможно вы имели ввиду '%s'");
        localization.put(TEST_CASE_SHOULD_CONTAIN_STEPS_RULE, "Не найдено главное правило 'шаги'");
        localization.put(SHOULD_BE_ONLY_ONE_DEFAULT_STEPS, "Шаги без названия могут встречатся лишь один раз");
        localization.put(CHARACTER_IS_NOT_A_FALID_CHAR_FOR_STEP_NAME, "Символ '%с' не является допустимым символом имени");
        localization.put(DATA, "данные");
        localization.put(DATA_SHOULD_HAVE_NAME, "Данным нужно дать имя");
        localization.put(DATA_SHOULD_START_WITH, "Json данные должны начинаться с { или [");

    }

    public Localization(Config config) {

    }

}
